package br.ucb.cesbdao.enuns;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import br.ucb.cesbdao.janelas.DialogFirstConnect;
import br.ucb.cesbdao.janelas.DialogTipo;
import br.ucb.cesbdao.janelas.Janela;
import br.ucb.cesbdao.janelas.JanelaApoio;
import br.ucb.cesbdao.janelas.JanelaBuscaAtendente;
import br.ucb.cesbdao.janelas.JanelaBuscaGrupo;
import br.ucb.cesbdao.janelas.JanelaCadastraPaciente;
import br.ucb.cesbdao.janelas.JanelaConexao;
import br.ucb.cesbdao.janelas.JanelaEncaminhamento;
import br.ucb.cesbdao.janelas.JanelaListaAtendente;
import br.ucb.cesbdao.janelas.JanelaListaGrupo;
import br.ucb.cesbdao.janelas.JanelaListaPaciente;
import br.ucb.cesbdao.janelas.JanelaListaUsuarios;
import br.ucb.cesbdao.janelas.JanelaMostraConsultaGrupo;
import br.ucb.cesbdao.janelas.JanelaNovoAtendimeto;
import br.ucb.cesbdao.janelas.JanelaTipoAtendimento;
import br.ucb.cesbdao.janelas.SelecionaAFI;
import br.ucb.cesbdao.visao.AlteraSenha;
import br.ucb.cesbdao.visao.HoraDialog;

@AllArgsConstructor
public enum EnumControleJanela {
	
	//JFRAMES
	JANELA_CONEXAO("janelaConexao", JanelaConexao.class),
	JANELA_PRINCIPAL("janelaPrincipal", Janela.class), 
	JANELA_BUSCA_ATENDENTE("janelaBuscaAtendente", JanelaBuscaAtendente.class),
	JANELA_MOSTRA_CONSULTA_GRUPO("janelaMostraConsultaGrupo", JanelaMostraConsultaGrupo.class),
	JANELA_BUSCA_GRUPO("janelaBuscaGrupo", JanelaBuscaGrupo.class), 
	JANELA_APOIO("janelaApoio", JanelaApoio.class), 
	JANELA("janela",Janela.class), 
	JANELA_CADASTRO_PACIENTE("janelaCadastraPaciente",JanelaCadastraPaciente.class), 
	JANELA_LISTA_USUARIO("janelaListaUsuario", JanelaListaUsuarios.class),
	JANELA_LISTA_PACIENTE("janelaListaPaciente", JanelaListaPaciente.class),
	JANELA_LISTA_ATENDENTE("janelaListaAtendente", JanelaListaAtendente.class),
	JANELA_LISTA_GRUPO("janelaListaGrupo", JanelaListaGrupo.class),
	
	//DIALOGS
	DIALOG_FIRST_CONNECT("dialogFirstConnect", DialogFirstConnect.class),
	DIALOG_TIPO("dialogTipo",DialogTipo.class),
	JANELA_SELECIONA_AFI("selecionaAFI", SelecionaAFI.class), 
	JANELA_ENCAMINHAMENTO("janelaEncaminhamento",JanelaEncaminhamento.class),
	JANELA_NOVO_ATENDIMENTO("janelaNovoAtendimeto",JanelaNovoAtendimeto.class),
	JANELA_TIPO_ATENDIMENTO("janelaTipoAtendimento", JanelaTipoAtendimento.class),
	JANELA_ALTERA_SENHA("alteraSenha", AlteraSenha.class),
	JANELA_HORA_DIALOG("horaDialog", HoraDialog.class);

	@Getter @Setter
	private String nomeJanela;
	
	@Getter @Setter
	private Class<?> classe;
	
	public static Object getJanela(String janela){
		try {
			for(EnumControleJanela enumJanela : EnumControleJanela.values()){
				if(enumJanela.getNomeJanela().equalsIgnoreCase(janela)){
					return enumJanela.getClasse().newInstance();
				}
			}
		} catch (InstantiationException | IllegalAccessException e) {
			e.printStackTrace();
		}
		return null;
	}
}
